func eraseOverlapIntervals(intervals [][]int) int {
    ans := 0
    sort.Slice(intervals, func (i,j int) bool {
        return intervals[i][1] < intervals[j][1]
    })
    for i:=1; i<len(intervals); i++ {
        if intervals[i-1][1] <= intervals[i][0]{
            ans++ // 记录不重叠区间
        } else {
            intervals[i][1] = min(intervals[i-1][1], intervals[i][1]) // 遇到重叠区间，需要取将重叠区间的有边界覆盖掉
        }
    }
    return len(intervals) - ans - 1 // 需要去除的区间个数为 总个数减去 没有重叠的个数
}

func min(a, b int) int {
    if a > b {
        return b
    }
    return a
}